home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / fpu881 / src6.zoo / log10.s < prev    next >
Text File  |  1991-09-24  |  888b  |  53 lines

  1. # mjr: # pml compatible lib for the atari sfp004
  2. #
  3. # Michael Ritzert, Oktober 1990
  4. # ritzert@dfg.dbp.de
  5. #
  6. # FUNCTION:    LOG10(X)
  7. #
  8. # base =    0xfffa50
  9. #      the fpu addresses are taken relativ to "base":
  10.  
  11. comm =     -6
  12. resp =    -16
  13. zahl =      0
  14.  
  15.     .even
  16. LC0:
  17.     .ascii "log10: zero argument\12\15\0"
  18.     .even
  19. LC1:
  20.     .ascii "log10: argument negative\12\15\0"
  21.     .even
  22. .globl _log10
  23. _log10:
  24.     tstl    a7@(4)
  25.     bpl    continue
  26.     bmi    nan
  27.  
  28.     moveml    d0-d7/a0-a6,a7@-
  29.     pea    LC0
  30.     jra    cconws
  31.  
  32. nan:    moveml    d0-d7/a0-a6,a7@-
  33.     pea    LC1
  34. cconws:
  35.     movew    #9,a7@-
  36.     trap    #1
  37.     addql    #6,a7
  38.     moveml    a7@+,d0-d7/a0-a6
  39.  
  40. #    rts            | continue to get inifinity or NAN
  41. continue:
  42.     lea    0xfffa50,a0
  43.     movew    #0x5415,a0@(comm)    | specify function
  44.     cmpiw    #0x8900,a0@(resp)    | check
  45.     movel    a7@(4),a0@        | load arg_hi
  46.     movel    a7@(8),a0@        | load arg_low
  47.     movew    #0x7400,a0@(comm)    | result to d0
  48. # wait
  49.     .long    0x0c688900, 0xfff067f8
  50.     movel    a0@,d0
  51.     movel    a0@,d1
  52.     rts
  53.